//
//  VPNService.h
//  alotOf
//
//  Created by Mac_Black_Mini on 2025/9/5.
//

#import <Foundation/Foundation.h>
#import <NetworkExtension/NetworkExtension.h>
#import "Node+CoreDataClass.h"// 节点模型
#import "Tools.h" // 工具类（原项目已有）

NS_ASSUME_NONNULL_BEGIN

// 连接状态枚举（与原逻辑一致）
typedef NS_ENUM(NSInteger, ConnectState) {
    ConnectStateDisconnect,
    ConnectStateConnecting,
    ConnectStateConnected
};

@interface VPNService : NSObject

/// 单例
+ (instancetype)shared;

/// 只读连接状态（外部仅可获取，不可修改）
@property (nonatomic, assign, readonly) ConnectState connectState;

/// 设置VPN节点（从RemoteConfig解析后传入）
- (void)setNodes:(NSArray<Node *> *)nodes;

/// 启动VPN（指定节点，nil则用默认第一个节点）
- (void)startVPNWithNode:(nullable Node *)node completion:(void (^)(NSError * _Nonnull))completion;

/// 停止VPN
- (void)stopVPN;

@end
NS_ASSUME_NONNULL_END
